This invention relates to a communication system and a communication terminal and, in particular, to a communication system and a communication terminal which are capable of controlling a transmission rate depending upon a path between transmission and reception terminals and a communicating condition.
At present, various types of applications are used over a network. Each of those applications may require a different quality of the network. For example, a realtime application required to have a realtime characteristic seeks a smaller delay time, a higher bandwidth, or a lower packet loss probability. On the other hand, a non-realtime application which is not required to have a realtime characteristic allows a longer delay time, a lower bandwidth, or a higher packet loss probability, as compared with the realtime application. In case where these applications different in characteristic are concurrently present, it is desired to give priority to the realtime application, rather than to equally and fairly deal with these applications.
As a first conventional technique to achieve priority control among various applications within the network, priority control by the network is known. For example, differentiated services are described in S. Blake et al., “An Architecture for differentiated services”, IETF RFC 2475, 1998. In the differentiated services, each packet is given priority information so that a packet of the realtime application can be transmitted with high priority.
As a second conventional technique to achieve priority control among various applications within the network, priority control using transport layer control at a terminal is known. Specifically, one of a plurality of transport layer control systems different in operation from one another is appropriately selected for each individual application. Specifically, for the realtime application, a transport layer control system intended to insatiably acquire a bandwidth is introduced. On the other hand, for the non-realtime application, another transport layer control system intended to acquire a bandwidth only when no congestion occurs in the network is introduced. In this manner, the above-mentioned priority control can be achieved.
As a typical transport layer protocol presently used, TCP (Transmission Control Protocol) is known. In TCP, a transmission rate is generally controlled by adjusting a parameter called a window size. The window size represents an amount of packets transmitted within an RTT (Round Trip delay Time) between transmission and reception terminals. Therefore, the transmission rate in the TCP is calculated by dividing the window size by the RTT. The RTT is measured as a time duration between transmission of a particular packet and reception of an ACK packet sent back from the reception terminal as an acknowledgement for the particular packet. Generally, the RTT includes a transmission path delay, a queuing delay at a repeater or relay node, and a processing delay at the reception terminal.
TCP has a number of versions. Among others, one of the most widespread versions is TCP-Reno (see W. Stevens, “TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms,” RFC2001, January 1997)). Therefore, by introducing a transport layer control system different in operation from TCP-Reno, it is possible to achieve priority control by the transport layer control.
As the transport layer control, proposal is made of TCP-Nice (see A. Venkataramani, R. Kokku, and M. Dahlin. “TCP-Nice: A mechanism for background transfers”, in OSDI02, 2002) and TCP-LP (see A. Kuzmanovic and E. Knightly, “TCP-LP; A Distributed Algorithm for Low Priority Data Transfer”, in Proc. of IEEE INFOCOM 2003). In TCP-Nice or TCP-LP, low priority of throughput is achieved over TCP connection using TCP-Reno. In these systems, congestion is judged at a lower degree of congestion as compared with typical TCP connection and the transmission rate is controlled based on congestion judgment. Specifically, the window size is increased until a measured RTT exceeds a specific value (threshold value) while the window size is decreased to a half or a minimum value when the measured RTT exceeds the specific value.
The first conventional technique to achieve priority control is disadvantageous in that an introduction cost is high. Since a priority control system must be incorporated into each node within the network, every existing node already introduced into the network must be replaced by a new node adapted to the priority control system.
The second conventional technique to achieve priority control has several problems.
As a first problem, a bandwidth can not effectively be utilized in TCP-LP and TCP-Nice as the known techniques because the window size is considerably decreased even at a low degree of congestion.
As a second problem, a bandwidth can not effectively be utilized in TCP-LP and TCP-Nice as the known techniques because the window size is considerably decreased even in absence of priority traffic and even at a low degree of congestion.
As a third problem, a bandwidth can not effectively be utilized in TCP-LP and TCP-Nice as the known techniques in case where packet loss occurs due to a factor other than the congestion.
As a fourth problem, a throughput of a TCP flow having a long propagation delay time is low in TCP-LP and TCP-Nice as the known techniques.